function runAsync1(){
    var p = new Promise(function(resolve,reject){
                setTimeout(function(){
                    console.log('执行任务01')
                    resolve('随便什么数据01')
                },1000);
            });
    return p;        
}

function runAsync2(){
    var p = new Promise(function(resolve,reject){
                setTimeout(function(){
                    console.log('执行任务02')
                    resolve('随便什么数据02')
                },2000);
            });
    return p;        
}

function runAsync3(){
    var p = new Promise(function(resolve,reject){
                setTimeout(function(){
                    console.log('执行任务03')
                    resolve('随便什么数据03')
                },3000);
            });
    return p;        
}


/**
 * all() 方法是异步执行多个操作.当所有的操作都完成后
 * 再执行then方法中的操作
 */
// Promise.all([runAsync1(),runAsync2(),runAsync3()])
// .then(function(data){
//     console.log(data)
// })
/**
 * 运行结果
执行任务01
执行任务02
执行任务03
["随便什么数据01", "随便什么数据02", "随便什么数据03"]
 */

 /**
  * race() 方法是异步执行多个操作.当最快的操作完成后
    就会处罚执行then方法中的操作,其他操作完成时并不会再次触发
  */
Promise.race([runAsync1(),runAsync2(),runAsync3()])
.then(function(data){
    console.log(data)
})
.catch(function(reason){
    console.log(reason)
})
/**
 * 运行结果
执行任务01
随便什么数据01
执行任务02
执行任务03
 */